Recently, there has been developed a multi-level NAND flash memory, in which one of a plurality of threshold voltages is set to one memory cell and data of a plurality of bits are stored.
On the other hand, a coupling capacitance between the memory cells adjacent to each other tends to increase with the shrinking of an element, a threshold voltage of the previously-written memory cell fluctuates according to the write of the adjacent memory cell. Therefore, there is proposed a method for writing a target threshold voltage in the memory cell after the data is written in the adjacent memory cell.
However, when the target threshold voltage is also written in the adjacent memory cell after that, unfortunately the threshold voltage of the memory cell in which the target threshold voltage is written fluctuates due to the coupling capacitance between the memory cells adjacent to each other.